Patterns for Software Architectures

نویسنده

  • Mary Shaw
چکیده

Software designers rely on informal patterns, or idioms, to describe the architectures of their software systems—the configurations of components that make up the systems. My purpose here is to reflect on the role these patterns play in software design. I am particularly interested in the ways that informal patterns shape the configurations. These patterns determine how separate parts are combined, or “woven together”. The resulting organization is often called the architecture of the system. Current programming languages do not support these patterns; indeed, the patterns address problems that lie outside the scope of conventional programming languages. This paper describes the character of these architectural patterns and the status of work on models and tools to support them. Design Patterns for Software Architectures The conventional view holds that software components interact by importing and exporting access rights to procedures, then calling the procedures (sometimes referred to as “invoking the methods”). However, software designers describe the interactions among components using quite a rich vocabulary of abstractions. Although the descriptions and the underlying vocabulary are imprecise and informal, designers nevertheless appear to communicate effectively. Even vocabulary that has been overloaded to the extent of becoming buzz-words, when used in context, carries content. For example: • "Camelot is based on the client-server model and uses remote procedure calls both locally and remotely to provide communication among applications and servers." [Spector 87] • "Abstraction layering and system decomposition provide the appearance of system uniformity to clients, yet allow Helix to accommodate a diversity of autonomous devices. The architecture encourages a client-server model for the structuring of applications." [Fridrich 85] • "We have chosen a distributed, object-oriented approach to managing information." [Linton 87] • "The easiest way to make the canonical sequential compiler into a concurrent compiler is to pipeline the execution of the compiler phases over a number of processors. ... A more effective way [is to] split the source code into many segments, which are concurrently processed through the various phases of compilation [by multiple

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Architectural Design Patterns for Multiagent Coordination

This paper presents our rst step towards agent-oriented software engineering, focusing on the area of coordinated multi-agent systems. In multi-agent systems, the interactions between the agents are crucial in determining the eeectiveness of the system. Hence the adoption of an appropriate coordination mechanism is pivotal in the design of multi-agent system architectures. This paper does not f...

متن کامل

Design of a novel congestion-aware communication mechanism for wireless NoC architecture in multicore systems

Hybrid Wireless Network-on-Chip (WNoC) architecture is emerged as a scalable communication structure to mitigate the deficits of traditional NOC architecture for the future Multi-core systems. The hybrid WNoC architecture provides energy efficient, high data rate and flexible communications for NoC architectures. In these architectures, each wireless router is shared by a set of processing core...

متن کامل

Some Patterns for Software Architectures

Software designers rely on informal patterns, or idioms, to describe the architectures of their software systems—the configurations of components that make up the systems. At the first PLoP, I identified seven patterns that guide high-level system design and discussed the way they guide the composition of systems from particular types of components [Shaw 95]. This paper extends the descriptions...

متن کامل

Chapter ? ? Some Patterns for Software Architectures

Software designers rely on informal patterns, or idioms, to describe the architectures of their software systems—the configurations of components that make up the systems. At the first PLoP, I identified seven patterns that guide high-level system design and discussed the way they guide the composition of systems from particular types of components [Shaw 95]. This paper extends the descriptions...

متن کامل

Architectural Software Patterns and Maintainability: a Case Study (hs-ida-ea-01-105) Architectural Software Patterns and Maintainability: a Case Study Architectural Software Patterns and Maintainability: a Case Study

The importance of building maintainable software is being recognized in the community of software development. By developing software that is easy to maintain, the time and resources needed to perform the modifications may be decreased. This will in turn mean economical savings and increased profits. Architectural software patterns are said to promote the development of maintainable software. T...

متن کامل

Dimensions of Software Architecture for Program Understanding

Software architecture is usually considered in terms of software construction rather than software understanding. Architectures for construction typically embody design patterns based on software engineering principles. In contrast, architectures for understanding represent change patterns and business rules based on conceptual models. This paper presents three dimensions of software architectu...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1994